复数的孪生兄弟:二元数与自动微分

您所在的位置:网站首页 a 复数 复数的孪生兄弟:二元数与自动微分

复数的孪生兄弟:二元数与自动微分

#复数的孪生兄弟:二元数与自动微分| 来源: 网络整理| 查看: 265

大家对复数应该都不陌生,人为规定可以给“-1”开根号后得来一套新的代数系统,有很多有趣的性质。你知道吗?我们所熟悉的复数还有两个孪生兄弟,即另外两套与之类似的代数系统。

有人可能猜我接下来要讲哈密顿(Hamilton)的四元数(Quaternions)——并不是!四元数算是复数之子,复数及其兄弟,且称之为“二元复数系统”吧。

切入正题前,分享高中时期的一件与复数相关的趣事:

学习复数这一单元时,数学陈老师正好有事出差,由年级里一位张老师来代课。快要下课时,张老师问:“同学们还有没有关于复数的问题?”教室后排大佬提问:“复数的几何意义是什么?”此时下课铃声想起,张老师道:“复数暂时还没有几何意义。”第二天,陈老师回来,走上讲台笑道:“同学们,今天我们来讲一讲复数的几何意义。”全班大笑,从此同学间多了一个新梗:复数暂时没有几何意义,等陈老师回来就有了!

等到大学时期,随着对数学的学习越来越深入,我竟从这个陈年笑话中悟出了新的感想。数学本身并没有意义,各种符号语言、逻辑运算的意义是人为赋予的,而在“使数学有意义”的过程中,“定义”十分重要。我们所接触的数学知识随着“定义”的扩充而越来越充盈,:小学老师告诉我们“做减法时要把大的数字放在前面”,但定义了负数之后这个限制就不存在了;原本根号-1没有意义,定义复数后它就成为重要的虚数单位;通过定义Generic Sum可对不收敛的无穷级数求和,从而我们可以得到“所有自然数之和为-1/12”的神奇结果。

“定义”就像一根指挥棒,充分发挥其作用就可以奏效数学的美妙乐章。这根指挥棒如何“变出”复数的孪生兄弟呢?

图文无关,上图为“六星系统”的轨道图,6胞胎!

二元数Dual Number(宏微数)

我在初中的时候认识了复数的其中一位兄弟,我在自学微积分时很不理解无穷小ε的性质:为什么求极限时可以理所当然地忽略ε高次项?比如把(x+ε)的平方写成: (x+\epsilon)^2=x^2+2x\epsilon

在我看来,这里的等号是强词夺理的,除非人为定义: \epsilon^2=0

作为中二少年的我,自作聪明地提出了“宏微数”的概念:在复数中,通过定义 i^2=0 ,以i为虚数单位,复数包含实数、虚数两部分;类比复数可提出宏微数的概念,根据上面的定义,将ε作为微观单位,宏微数包含宏观、微观两部分。以我当时有限的认知来看,“宏微数”的出现解决了微积分的根本缺陷,我真是个比肩高斯的天才少年!

其实,所谓“宏微数”早在我出生前125年,克里福德(Clifford)就提出了这一概念,正经的名字是二元数Dual Number:以幂零元ε作为二元数单位,二元数集合R[ε]={a+bε|a,b∈R}可以看作是对实数集的一个扩充。二元数在形式上就和复数非常相似,且二者之间存在本质的关联(这会在后文提及),顾称它为复数的孪生兄弟。

Dual Number遵循的运算规则和复数大同小异: (a+b\epsilon)+(c+d\epsilon)=(a+c)+(b+d)\epsilon

(a+b\epsilon)(c+d\epsilon)=ac+(ad+bc)\epsilon

\frac{a+b\epsilon}{c+d\epsilon}=\frac{a+b\epsilon}{c+d\epsilon}\frac{c-d\epsilon}{c-d\epsilon}=\frac{ac+(bc-ad)\epsilon}{c^2}

在计算时,记住ε平方项为0即可。在进行除法运算时,和复数除法一样,将分子、分母同乘以分子的复共轭c-dε。Dual Number共轭运算规则是,其模方等于实数部分的平方: |a+b\epsilon|^2=(a+b\epsilon)(a-b\epsilon)

复数兄弟

我们可以借助矩阵表示来更直观地看到复数和Dual Number之间的联系。

复数的矩阵来表达以及运算规则:

a+bi=\begin{pmatrix}a&b\\-b&a\end{pmatrix} , i=\begin{pmatrix}0&1\\-1&0\end{pmatrix}

\begin{pmatrix}a&b\\-b&a\end{pmatrix}+\begin{pmatrix}c&d\\-d&c\end{pmatrix}=\begin{pmatrix}a+c&b+d\\-b-d&a+c\end{pmatrix}

\begin{pmatrix}a&b\\-b&a\end{pmatrix}\begin{pmatrix}c&d\\-d&c\end{pmatrix}=\begin{pmatrix}ac-bd&ad+bc\\-ad-bc&ac-bd\end{pmatrix}

Dual Number的矩阵表达以及运算规则:

a+b\epsilon=\begin{pmatrix}a&b\\0&a\end{pmatrix} , \epsilon=\begin{pmatrix}0&1\\0&0\end{pmatrix}

\begin{pmatrix}a&b\\0&a\end{pmatrix}+\begin{pmatrix}c&d\\0&c\end{pmatrix}=\begin{pmatrix}a+c&b+d\\0&a+c\end{pmatrix}

\begin{pmatrix}a&b\\0&a\end{pmatrix}\begin{pmatrix}c&d\\0&c\end{pmatrix}=\begin{pmatrix}ac&ad+bc\\0&ac\end{pmatrix}

从上面的矩阵表达可以看出,在二元复数系统中,复数和Dual Number都可以用2x2矩阵来表示,只是非实数部分的基底选取不同。从抽象代数的角度来说,Dual Number和复数是由实数扩充得到的代数系统——他们是由“定义”这根指挥棒发挥作用创造出来的概念!试问,他们有什么意义呢?

大家对复数的几何意义——复平面并不陌生,每个复数是复平面中的一个向量。复数的几何意义看似平凡,但在其基础上衍生出欧拉公式、复变函数等物理领域的重要工具。

数学物理方法,这门大部分重点集中在复变函数的课程大概是许多物理系学子大二的噩梦?

是否可以找到Dual Number的几何意义并且加以应用?答案是肯定的

模为1的复数在复平面上构成一个单位元,复数的乘法运算可以理解为单位元上的旋转,例如幅角为α和β的两个复数相乘,得到的结果等价于两个幅角直接相加: e^{i\alpha}e^{i\beta}=e^{i(\alpha+\beta)}

在Dual Number平面上,模为1的Dual Number位置限制在x=±1的两条直线上。“幅角”为p、q的两个单位数相乘的几何意义为剪切映射(Shear mapping):即沿着垂直于实数轴的直线移动。

(1+p\epsilon)(1+q\epsilon)=1+(p+q)\epsilon

除了上述几何意义与特性外,我们还可以从物理意义的角度来解释Dual Number。在非相对论时空下,可以用Dual Number来表示伽利略变换:

(t',x')=(t,x)\begin{pmatrix}1&v\\0&1\end{pmatrix}

自动微分Auto differentiation

自1873年克里福德(Clifford)时期以来,直到近些年神经网络(Neural Network)的兴起,Dual Number这一概念才真正广为人知。利用神经网络进行前向、反向传播计算时需要进行大量的求导操作,利用Dual Number在求导时的性质,可实现所谓自动微分Auto differentiation。

趣图:微分计算的人工、数值、符号以及自动微分方法/这张图不知是有意还是故意,画得和费曼图很像

例如机器学习主流软件包Tensorflow以及PyTorch都是采用自动微分的方式来计算梯度下降的。自动微分技术可以解决大规模神经网络中数值微分效率过低的问题。

如何用Dual Number实现自动微分呢?将一个Dual Number输入一个函数,并将其展开:

f(x+\epsilon)=\sum_{n=0}^{\infty}{a_n(x+\epsilon)^n}=\sum_{n=0}^{\infty}\sum_{k=0}^{n}a_nC_n^kx^{n-k}\epsilon^k

不要被上面的形式吓到,因为Dual Number的性质,只需要保留其一次项,可以把上式化简为:

f(x+\epsilon)=\sum_{n=0}^{\infty}a_nx^n+\sum_{n=1}^{\infty}na_nx^{n-1}=f(x)+f'(x)\epsilon

看出什么端倪了吗?

没错,只要将Dual Number输入函数,就可以“自动输出”函数的微分!通过下面几个例子来感受一下自动微分的计算:

对于复合函数的链式求导,也可以通过自动微分的方式进行:

可见,在大规模神经网络的前向、反向传播中,可以利用Dual Number的性质进行自动微分,来更加便捷地计算大规模神经网络的前向、反向传播。

总结

这篇文章给大家介绍了复数的孪生兄弟——Dual Number,实际上复数家族的完整成员有三兄弟!毕竟在对实数进行扩张的时候已经定义了复数、Dual Number这两个代数系统,不妨把“二元复数系统”表示成更加general的形式

新定义的代数系统由实数部分和以ω为基底的“虚数”部分组成: a+b\omega , a,b\in\Re

当ω平方等于-1、0、1时,分别对应复数、Dual Number和Double Number系统——至此,复数家族“二”字辈成员已经完整了。本篇文章到此结束。

作为文章总结,我再叽歪几句来升华主题,并且呼应开头那件趣事。高中阶段的数学是比较直观的,所以我们这些“好学生们”很自然地形成了类似于“复数的几何意义是什么”这种打破砂锅问到底的习惯。

随着接触到的数学越来越复杂,我逐渐习惯于困惑和迷茫——复变函数、抽象代数、微分几何什么的,我觉得自己并没有真正意义上“理解”,只是熟悉了其中的符号语言,学会了照葫芦画瓢

数学很虐,但是值得细细品味。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3